package Map.统计字符串中每个字符串出现的次数;

import java.util.*;

public class HashMapDemo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串");
        String line = sc.nextLine();
        //创建HashMap集合，键是Character,值是Integer
        TreeMap<Character, Integer> map = new TreeMap<Character, Integer>();

        //遍历字符串
        for (int i = 0; i < line.length(); i++) {
            char key = line.charAt(i);//此字符作为键存在

            //将每个字符作为键到HashMap集合中去找对应的值，看其返回值
            Integer value = map.get(key);
            //如果返回值为null,说明该字符在HashMap集合中不存在，就把该字符作为建，1作为值存储
            if (value == null) {
                map.put(key, 1);//自动装箱
            } else {
                //如果返回值不为null,说明该字符在HashMap集合中存在，就把该值加1，然后重新存储
                value++;//自动拆箱
                map.put(key, value);//重新存储
            }
        }
        //遍历HashMap集合，得到键和值，按照要求进行拼接
        StringBuilder sb = new StringBuilder();

        Set<Character> keySet = map.keySet();
        for (Character s : keySet) {
            Integer value = map.get(s);
            sb.append(s).append("(").append(value).append(")");
        }
        String result = sb.toString();

        System.out.println(result);
    }

}
